package com.huilian.iotbox.data.po;

import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
@ToString(callSuper = true)
public class Device implements Serializable {
    private static final long serialVersionUID = 4209557570579195315L;
    private Integer id;
    /**
     * 设备号
     */
    private String deviceNo;
    /**
     * 别名
     */
    private Integer alias;
    /**
     * 设备类型id
     */
    private Integer deviceTypeId;
    private String password;
    /**
     * 设备厂商类型
     */
    private Integer vendorId;
    /**
     * mqtt服务商
     */
    private Integer serviceProvider;
    /**
     * 场地id，未绑定场地统一用-1
     */
    private Integer merchantStoreId;
    /**
     * 顶级代理id，主要用于生产新设备号时用到
     */
    private Integer agencyId;
    /**
     * 设备交易总金额
     */
    private BigDecimal totalTransactionAmount;
    /**
     * 设备返佣状态  0/null 未返佣  1已返佣
     */
    private Integer rebateStatus;

    /**
     * 产品id
     */
    private Integer productId;
    /**
     * 设备状态：0、下架，1、上架，2、故障，3、未激活，4、解绑，5、维修替换
     */
    private Integer status;
    /**
     * 网络强度
     */
    private Integer networkIntensity;
    /**支持蓝牙网络，1：支持，0/null：不支持*/
    private Integer isBluetooth;
    /**支持WIFI网络，1：支持，0/null：不支持*/
    private Integer isWIfI;
    /**
     * 最后上报心跳时间
     */
    private Date lastHeartbeat;
    /**
     * 每局多少币
     */
    private Integer rateEach;
    /**
     * 波特率id
     */
    private Integer baudId;
    /**
     * 协议版本：1、旧版，2、新板
     */
    private Integer agreementVersion;
    /**
     * 固件版本号
     */
    private Integer firmwareVersion;
    /**
     * 向外投币电平
     */
    private Integer level;
    /**
     * SIM_ICC_ID(物联卡号)
     */
    private String SIM_ICC_ID;
    /**
     * 脉冲功能开关
     */
    private Boolean pulseSwitchState;
    /**
     * 数据位
     */
    private Integer dataBit;
    /**
     * 校验位
     */
    private Integer parityBit;
    /**
     * 停止位
     */
    private Integer stopBit;
    /**
     * 故障代码，根据厂家设置，默认为0
     */
    private Integer faultCode;
    /**
     * 心跳时间
     */
    private Integer heartbeatTime;
    /**
     * 出礼模式
     */
    private Integer ritualModel;


    /**
     * 套餐有效期时间
     */
    private Integer ncetId;

    private Integer netCardReplaceStatus;

    /**
     * 设备备注名称，方便记忆
     */
    private String remarkName;

    /**
     * 兑币机类型时，是否需要兑币机主板来投币。1：代表外部设备（兑币机主板来投币），0、null和其他：系统来投币。仅支持脉冲投币+纸钞机串口。
     */
    private Boolean isCoinOperated;

    /**
     * 充电费率
     */
    private Long chargingPileRateId;

    /**
     * 自动投币
     */
    private Boolean automaticCoin;
    /**
     * 套餐有效期时间
     */
    private Integer kwh;
    /**
     * 间隔长度，毫秒。控制出币速度，数值越高就越慢
     */
    private Integer gapLength;
    /**
     * 脉冲长度，毫秒。控制脉冲信号长度，数值越高就越准
     */
    private Integer pulseLength;
    /**
     * 游戏时间
     */
    private Integer gameTime;
    /**
     * 安卓板型号
     */
    private String androidMotherboardModel;
    /**
     * cpuId
     */
    private String cpuId;
    /**
     * 超级兑币机。0/null：不是，1：是
     */
    private Boolean isAndroid;
    /**
     * 存币存票机。0/null：不是，1：是
     */
    private Boolean isDepositCoinsAndBills;
    /**
     * 门闸机。0/null：不是，1：是
     */
    private Boolean isGate;
    /**
     * 已分配。0/null：不是，1：是
     */
    private Boolean isAllocated;
    /**
     * 预测当前串口主板的下一个账目上报的自增码
     */
    private Integer nextUploadAccountCode;
    /**
     * 投币、出货、支付申请（失败、超时未回复）重试功能，0/null：不重试，1：重试
     */
    private Boolean retry;
    /**
     * 普通、超级兑币机出币（失败、超时未回复）重试功能，0/null：不重试，1：重试
     */
    private Boolean outCoinRetry;
    /**
     * 开机检查参数是否一致，0/null：不开，1：开启
     */
    private Boolean powerOnCheckParameter;

    private BigDecimal lockTime;

    /**   行线 0/null 正  1 反 （按照旧的售货机主板来的）*/
    private Integer hierarchySequence;
    /**   列线0/null 正  1 反 （按照旧的售货机主板来的）*/
    private Integer freightLaneSequence;
    /**   反馈0/null 正  1 反 （按照旧的售货机主板来的）*/
    private Integer reverseSequence;
    /**   反转线序，层当列用，列当层用（适配中吉） 0/null 正  1 反 （按照旧的售货机主板来的）*/
    private Integer feedbackSequence;

    /**出货时间，默认4毫秒，售货机用的，超过这个时间售货机机器就会停止运行，光眼需要用到*/
    private Integer deliveryTime;


    /**   0/null 不做要求 1带反馈  2不带反馈 （暂时售货机用）*/
    private Integer feedback;
    /**
     * 接口对接的支付盒子。0/null：不是，1：是
     */
    private Boolean isApi;
    /**
     * 商品详情页，0/null.关闭，1.打开（暂时售货机用）
     */
    private Boolean commodityDetailSwitch;

    /**灯光控制，0.关闭/默认值，1.打开*/
    private Integer lightControl;
    /**风扇控制，0.关闭/默认值，1.打开*/
    private Integer fanControl;
    /**温度控制，0.关闭/默认值，1.制冷，2.制热*/
    private Integer temperatureControl;
    /**压缩机启动温度*/
    private Integer compressorStartingTemperature;
    /**压缩机停止温度*/
    private Integer compressorStopTemperature;

    private Integer payLimitTime;

    private Date createTime;

    private Date updateTime;
}
